package bit_pratice.day9;

/**
 * @author 美女
 * @date 2022/06/01 17:26
 **/

import java.util.Scanner;

/**
 * 请计算n*m的棋盘格子（n为横向的格子数，m为竖向的格子数）从棋盘左上角出发沿着边缘线从左上角走到右下角，总共有多少种走法，
 * 要求不能走回头路，即：只能往右和往下走，不能往左和往上走。
 *
 * 注：沿棋盘格之间的边缘线行走
 * 数据范围： 1 \le n,m \le 8 \1≤n,m≤8
 */

/**
 * 分析：
 * 一个格子：两种走法【m+n】
 * 一行n列的格子：1+n走法【m+n】
 * m行一列的各自：m+1走法【m+n】
 * 当行数列数都>1时（m行n列）：m行n列时的走法=m-1行n列的走法+m行n-1列的走法
 *
 */
public class 走方格的方案数 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int m=scanner.nextInt();
        int n=scanner.nextInt();
        int res=method(m,n);
        System.out.println(res);
    }

    private static int method(int m, int n) {
        if((m==1&&n>=1)||(m>1&&n==1)){
            return m+n;
        }
        return method(m-1,n)+method(m,n-1);
    }
}
